home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung 2 / Power-Programmierung CD 2 (Tewi)(1994).iso / c / library / bcfamily / source / scanenv.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1993-06-12  |  1.0 KB  |  44 lines

  1. //
  2. //      *******************************************************************
  3. //        JdeBP C++ Library Routines          General Public Licence v1.00
  4. //            Copyright (c) 1991,1992     Jonathan de Boyne Pollard
  5. //      *******************************************************************
  6. //
  7. // Part of FamAPI.LIB
  8. //
  9.  
  10. #include "famapi.h"
  11. #include "dosdos.h"
  12.  
  13. //
  14. //    Scan environment segment for VAR=VALUE pair
  15. //
  16. USHORT _APICALL
  17. DosScanEnv    ( const char far *PtrVarName,
  18.               const char far * far *PtrPtrResult )
  19. {
  20.     USHORT PSPSeg ;
  21.     USHORT err = DosDosQPSPSeg(&PSPSeg) ;
  22.  
  23.     if (err) return err ;
  24.  
  25.     struct psp far *psp = (struct psp far *)MK_FP(PSPSeg, 0) ;
  26.  
  27.     char far *env = (char far *)MK_FP(psp->environment, 0) ;
  28.  
  29.     while (*env) {
  30.         const char far *VarPtr = PtrVarName ;
  31.  
  32.         while (*VarPtr && *VarPtr == *env)
  33.             VarPtr++, env++ ;
  34.  
  35.         if (!*VarPtr && *env == '=') {
  36.             *PtrPtrResult = ++env ;    // Skip the '='
  37.             return NO_ERROR ;
  38.         } else
  39.             while (*env++) ;        // Skip to start of next string
  40.     }
  41.  
  42.     return ERROR_INVALID_NAME ;
  43. }
  44.